/*
 * SearchMapFAction.java
 * Copyright (c) 2006, FMap
 *
 * Created on 11 de febrero de 2006, 12:42
 */

package fmap.actions.mapF.searchMapF;

import fmap.DatosCompartidos;
import fmap.actions.EvtThread;
import fmap.dao.NodeDao;
import fmap.gui.jTreePersonal.TreeModelResultSearch;
import fmap.model.MapF;
import java.awt.Cursor;

/**
 * Accion que debe llamar a un hilo para realice una busqueda en un solo mapa de ficheros
 * Esta funcionalidad todavia no esta implementada
 *
 * @author  Javier Sanroman Araujo
 * @version $Revision: 1.1
 */
public class SearchMapFAction implements SearchMapFEvt
{
    MapF mapFSearch;
    String txtSearch;
    
    /** Creates a new instance of SearchMapFAction */
    public SearchMapFAction ( MapF _mapF , boolean checkBoxCase)
    {
        DatosCompartidos.getJFrameMain ().setCursor ( new Cursor (Cursor.WAIT_CURSOR) );
        mapFSearch = _mapF;

        txtSearch   = DatosCompartidos.getJFrameMain ().getTextFSearchMapF ().getText ();

        // Eliminamos todos los resultados de las busquedas anteriores de la BD
        new NodeDao ().deleteNodeResultSearch ( _mapF.getId () );
        
        // Construimos el objecto que implementa el hilo a lanzar
        SearchMapFTh h = new SearchMapFTh ( mapFSearch , txtSearch, 0, checkBoxCase);
        // Añadimos esta clase como listener para que reciba los eventos necesarios (finBusqueda).
        h.addMiEventoListener (this);
        // construimos el hilo
        Thread th = new Thread (h);
        
        th.start ();
    }



    /**
     * Implementamos nuestro evento
     * Se llamara a el cada vez que termine un hilo
     */
    public synchronized void finBusqueda ( EvtThread e )
    {
        /** Obtenemos el hilo que ha generado el evento */
        SearchMapFTh th = (SearchMapFTh)e.getSource ();
        
        DatosCompartidos.getJFrameMain ().getRadioButtonArbol ().setSelected ( true );
        
        
        // Creamos y enviamos un nuevo modelo al JTree del buscador
//        fmap.model.MapF mapFResultSearch = new fmap.model.MapF ( mapFSearch.getIdMapF (), mapFSearch.getIdCollection (), mapFSearch.getName2 (), mapFSearch.getPath (), mapFSearch.getDesc (), mapFSearch.getIcon (), mapFSearch.getNumNod (), mapFSearch.getIdTable (), mapFSearch.getIdCat ());
        MapF mapFSResult = th.getMapFResult ();
        
        mapFSResult.setName ( mapFSResult.getName2 ()+" ["+mapFSResult.getNumResult ()+" resultados encontrados]");


        TreeModelResultSearch modelResultSearch = new TreeModelResultSearch ( mapFSResult );
        DatosCompartidos.getJTreeResultSearch ().setModel ( modelResultSearch );
        
        DatosCompartidos.getJFrameMain ().getJspResultSearch ().getViewport ().add ( DatosCompartidos.getJTreeResultSearch () );
        
        DatosCompartidos.getJTreeResultSearch ().expandTree ();
        
        DatosCompartidos.getJFrameMain ().getPestana ().setSelectedIndex (1);
        
        
        DatosCompartidos.getJFrameMain ().setCursor ( new Cursor (Cursor.DEFAULT_CURSOR) );
    }
}
